package com.gitee.free.coding.admin.system.service.impl;

import com.gitee.free.coding.admin.system.entity.SystemLoginLog;
import com.gitee.free.coding.admin.system.logic.SystemLoginLogLogic;
import com.gitee.free.coding.admin.system.logic.SystemUserLogic;
import com.gitee.free.coding.admin.system.mapstruct.mapper.SystemLoginLogMapstructMapper;
import com.gitee.free.coding.admin.system.service.ISystemLoginLogService;
import com.gitee.free.coding.admin.system.vo.SystemLoginLogVO;
import com.gitee.free.coding.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * <p>
 * 服务实现类
 * </p>
 *
 * @author liaoen
 * @since 2024-06-04 16:23:50
 */
@Service
public class SystemLoginLogServiceImpl implements ISystemLoginLogService {

    @Autowired
    private SystemLoginLogLogic systemLoginLogLogic;

    @Autowired
    private SystemUserLogic systemUserLogic;

    @Override
    public void addSystemLoginLog(SystemLoginLogVO systemLoginLogVO) {
        if (systemLoginLogVO.getUid() == null) {
            Integer activeUserId = systemUserLogic.getActiveUserId(systemLoginLogVO.getUserName());
            systemLoginLogVO.setUid(activeUserId);
        }
        if (systemLoginLogVO.getLoginDate() == null) {
            systemLoginLogVO.setLoginDate(DateUtils.getCurrentDate());
        }
        if (systemLoginLogVO.getLoginTime() == null) {
            systemLoginLogVO.setLoginTime(DateUtils.getCurrentTime());
        }
        SystemLoginLog systemLoginLog = SystemLoginLogMapstructMapper.INSTANCE.toSystemLoginLog(systemLoginLogVO);
        systemLoginLogLogic.addSystemLoginLog(systemLoginLog);
    }
}
